import numpy as np
from cmath import inf
#这个代码用于设定非线性规划问题的合理初始值
n=1000000;
x1=-10+20*np.random.rand(n,1)#关于这个范围其实是需要事先人为手动确定的
x2=-10+20*np.random.rand(n,1)
fmax=-inf
X=np.array
for i in range(0,n):
    x = [x1[i],x2[i]];
    if (-x[0]**2 +2*x[0]+x[1]>=1) & (2*x[0]-3*x[1]>=-6):#这里的条件是用于判断对应的数组是否符合约束条件
        result = x[0]**2 + x[1]**2 - x[0]*x[1] -  2*x[0] - 5*x[1];#对所有符合要求的数组均进行一次数据更新和比较
        if result > fmax:
            fmax = result;
            X = x;#X是结果矩阵，用于储存上一次最大值对应的答案
print('模拟求得的最大值为：',fmax)
print('对应此处的x1,x2取值为：',X)
